// src/plugins/globalMethodsAndProperties.js  
  
import { App } from 'vue';  
  
// 定义全局方法  
function globalMethod() {  
  console.log('这是一个全局方法');  
}  
  
// 定义全局属性（通过全局混入实现）  
const globalMixin = {  
  data() {  
    return {  
      globalProperty: '这是一个全局属性'  
    };  
  },  
  methods: {  
    // 这里也可以定义全局方法，但通常全局方法通过其他方式注册  
  },  
  // 注意：通常不推荐在全局混入中定义 methods，因为这样做可能会导致方法名冲突  
  // 这里仅作为演示  
};  
  
// 定义插件  
export default {  
  install(app: App) {  
    // 注册全局方法  
    // Vue 3 没有直接的 API 来全局注册方法，但可以通过 app.config.globalProperties 来实现  
    app.config.globalProperties.$globalMethod = globalMethod;  
  
    // 注册全局混入（作为全局属性的一种实现方式）  
    // 注意：全局混入会影响每一个组件实例  
    app.mixin(globalMixin);  
  
    // 如果你想要更精细地控制哪些组件获得这些混入，你可能需要考虑其他方式，  
    // 比如通过提供/注入（provide/inject）或者创建一个高阶组件（HOC）  
  },  
};